/*************************************************************************
 *                                                                       *
 * This file is part of the FreeMAPs distribution.  For full copyright   *
 * information, see COPYRIGHT and COPYING.LESSER.                        *
 *                                                                       *
 * Author:           sqbang                                              *
 * Email:            sqbang@ustc.edu                                     *
 * Date:             2013.11.19                                          *
 *                                                                       *
 *************************************************************************/
#if 0
#ifndef FreeMAPs_include_COMMON_mesh_FluentIO_h
#define FreeMAPs_include_COMMON_mesh_FluentIO_h

#include "FreeMAPsConfig.h"

//COMMON headers
#include "COMMON/mesh/MeshIO.h"

namespace FreeMAPs
{

/**
 * @brief FluentIO used to read/write Fluent's format file in/out to/from mesh.
 */
class FluentIO : public MeshIO
{
public:

    FluentIO();

    ~FluentIO();

public:

    /**
     * the elems' structure is:
     * the elems[i] is the elem->id() = i;
     * and in the elem, the pair is pair<pair<elem_type, subdomain_id>, vector<node_id> >
     */
    virtual void
    read (
        const std::string& file_name,
        std::map<int, libMesh::Point>& nodes,
        std::vector<Elem>& elems,
        MeshGroup& mesh_group) const;

    virtual void
    write (
        const std::string& file_name) const;

private:

    typedef MeshIO Parent;

private:

    DISALLOW_COPY_AND_ASSIGN (FluentIO);
};

}

#include "COMMON/mesh/FluentIO.inl"

#endif

#endif //
